<template>
  <mavon-editor ref="editor" :value="value" :toolbars="toolbars" :ishljs="true"
                @imgAdd="imgAdd" @fullScreen="fullScreen" @change="change"
                :boxShadow="false" :subfield="true" defaultOpen="edit"
                placeholder="内容"
                codeStyle="atom-one-dark"
                :style="{height: contentHeight, width: '100%'}"
  />
</template>

<script>
  export default {
    name: 'MarkdownEditor',
    props: {
      value: {
        type: String,
        default: ''
      },
      initValue: {
        type: String,
        default: ''
      },
      height: {
        type: Number,
        default: 350
      }
    },
    data() {
      return {
        uploading: false,
        uploadingText: 'loading...', // TODO 2019-02-28 没显示上传文案
        contentHeight: this.height + 'px',
        fullScreenStatus: false,
        toolbars: {
          bold: true, // 粗体
          italic: true, // 斜体
          header: true, // 标题
          underline: true, // 下划线
          strikethrough: true, // 中划线
          mark: true, // 标记
          superscript: true, // 上角标
          subscript: true, // 下角标
          quote: true, // 引用
          ol: true, // 有序列表
          ul: true, // 无序列表
          link: true, // 链接
          imagelink: true, // 图片链接
          code: true, // code
          table: true, // 表格
          fullscreen: true, // 全屏编辑
          // readmodel: true, // 沉浸式阅读
          // htmlcode: true, // 展示html源码
          help: true, // 帮助
          /* 1.4.2 */
          navigation: true, // 导航目录
          /* 2.1.8 */
          alignleft: true, // 左对齐
          aligncenter: true, // 居中
          alignright: true, // 右对齐
          /* 2.2.1 */
          subfield: true, // 单双栏模式
          preview: true // 预览
        }
      }
    },
    mounted() {
    },
    beforeDestroy() {
    },
    methods: {
      /**
       * 添加图片
       */
      async imgAdd(pos, file) {
        // let me = this
        // me.uploading = true
        // me.uploadingText = '正在上传 ' + file.name
      },
      /**
       * 内容变更
       * @param value
       * @param render
       */
      change(value) {
        this.$emit('input', value)
        if (value !== this.initValue) {
          this.$emit('change', value)
        }
      },
      /**
       * 切换全屏
       * @param status
       */
      fullScreen(status) {
        this.fullScreenStatus = status
        if (status) {
          this.contentHeight = 'auto'
        } else {
          this.contentHeight = this.height + 'px'
        }
      },
    },
  }
</script>

<style scoped>

</style>
